--***********************************************************
--**                    ROBERT JOHNSON                     **
--***********************************************************

require "TimedActions/ISBaseTimedAction"

ISDryMyself = ISBaseTimedAction:derive("ISDryMyself");

function ISDryMyself:isValid()
	return self.character:getInventory():contains(self.item) and self.character:getBodyDamage():getWetness() > 0 and self.item:getUsedDelta() > 0;
end

function ISDryMyself:update()
	self.tick = self.tick + 1;
	if self.tick >= self.timer then
		self.tick = 0;
		--self.character:getBodyDamage():setWetness(self.character:getBodyDamage():getWetness() - (self.character:getBodyDamage():getWetness() / 20));
        self.character:getBodyDamage():decreaseBodyWetness( self.character:getBodyDamage():getWetness() / 20 );
		self.item:Use();
    end
    self.character:setMetabolicTarget(Metabolics.LightDomestic);
end

function ISDryMyself:start()
end

function ISDryMyself:stop()
    ISBaseTimedAction.stop(self);
end

function ISDryMyself:perform()
	if self.item then
		self.item:Use();
	end
    -- needed to remove from queue / start next.
	ISBaseTimedAction.perform(self);
end

function ISDryMyself:new(character, item, time)
	local o = {}
	setmetatable(o, self)
	self.__index = self
	o.character = character;
	o.item = item;
	o.stopOnWalk = true;
	o.stopOnRun = true;
	o.maxTime = time;
	if o.character:isTimedActionInstant() then o.maxTime = 1; end
	o.timer = time / 20;
	o.tick = 0;
    o.caloriesModifier = 4;
	return o;
end
